package com.zhanglijie.base.other.interuptDemo;

import java.lang.reflect.GenericArrayType;
import java.util.SimpleTimeZone;

/**
 * @author zhanglijie
 * @version 1.0
 * @since 1.1.0 2022/6/26 0026 20:17
 * 验证interrupt() 如果没有配套异常的话是不会中断的（像Thread.sleep());
 */
public class InteruptDemo1 {
    public static void main(String[] args) {
        Thread mainThread = Thread.currentThread();

        new Thread(()-> {
            System.out.println(Thread.currentThread().getName()+"====执行了");
            mainThread.interrupt();//如果不是Thread.sleep()不会中断主线程的while
        },"t1").start();
        while(true){
            System.out.println("main 不断执行");
            try {

                Thread.sleep(1000);// 这个可以中断
               // mysleep(2000000);//这个不可以中断
            }catch (Exception e){}//捕捉了异常 那么真的中断了还是会继续执行的


        }
    }
    private static void mysleep(int timeout) {
        long start = System.nanoTime();
        long end;
        do{
            end = System.nanoTime();
        }while(end-start<=timeout);
    }
}
